package com.example.dbsample.service.hook;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.example.dbsample.model.entity.SysDictData;
import com.example.dbsample.model.entity.TaskItemEntity;
import com.example.dbsample.service.business.SysDictDataService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Slf4j
@Service
public class TaskVerifyItemHook implements Hook<TaskItemEntity> {

    //@Autowired
    //private ITaskVerifyService taskVerifyService;
    //
    //
    //@Autowired
    //private ITaskVerifyItemService taskVerifyItemService;
    //
    //
    //@Autowired
    //private Map<String, TextMatchService> textMatchServiceMap;

    @Autowired
    private SysDictDataService sysDictDataService;

    /**
     * 跑批任务项执行完后触发更新验证任务项记录结果等
     *
     */
    @Override
    public void doBefore(TaskItemEntity taskItemEntity) {

    }

    /**
     * 在执行任务的地方，增加钩子方法的调用
     * @param taskItem
     */
    @Override
    public void after(TaskItemEntity taskItem) {
        log.info("进入验证任务回调, [{}]", taskItem);
        // TODO 这里只是展示limit 1的使用
        SysDictData sysDictData = this.sysDictDataService.getOne(Wrappers.<SysDictData>lambdaQuery().eq(SysDictData::getId, taskItem.getId()).last("limit 1"));
        /**
         * 1. 获取验证任务项表
         * 2. 获取验证任务表
         * 3. 执行模型相似度对比
         * 4. 调用文本匹配任务
         * 5. 设置系统判断结果以及状态
         * 6. 更新验证任务项表
         */
    }
}
